package com.huaxiafinance.management.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ProductSkuExample {
    protected String orderByClause;
 
    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductSkuExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProUuidIsNull() {
            addCriterion("pro_uuid is null");
            return (Criteria) this;
        }

        public Criteria andProUuidIsNotNull() {
            addCriterion("pro_uuid is not null");
            return (Criteria) this;
        }

        public Criteria andProUuidEqualTo(String value) {
            addCriterion("pro_uuid =", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidNotEqualTo(String value) {
            addCriterion("pro_uuid <>", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidGreaterThan(String value) {
            addCriterion("pro_uuid >", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidGreaterThanOrEqualTo(String value) {
            addCriterion("pro_uuid >=", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidLessThan(String value) {
            addCriterion("pro_uuid <", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidLessThanOrEqualTo(String value) {
            addCriterion("pro_uuid <=", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidLike(String value) {
            addCriterion("pro_uuid like", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidNotLike(String value) {
            addCriterion("pro_uuid not like", value, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidIn(List<String> values) {
            addCriterion("pro_uuid in", values, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidNotIn(List<String> values) {
            addCriterion("pro_uuid not in", values, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidBetween(String value1, String value2) {
            addCriterion("pro_uuid between", value1, value2, "proUuid");
            return (Criteria) this;
        }

        public Criteria andProUuidNotBetween(String value1, String value2) {
            addCriterion("pro_uuid not between", value1, value2, "proUuid");
            return (Criteria) this;
        }

        public Criteria andPriceTypeIsNull() {
            addCriterion("price_type is null");
            return (Criteria) this;
        }

        public Criteria andPriceTypeIsNotNull() {
            addCriterion("price_type is not null");
            return (Criteria) this;
        }

        public Criteria andPriceTypeEqualTo(Integer value) {
            addCriterion("price_type =", value, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeNotEqualTo(Integer value) {
            addCriterion("price_type <>", value, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeGreaterThan(Integer value) {
            addCriterion("price_type >", value, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("price_type >=", value, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeLessThan(Integer value) {
            addCriterion("price_type <", value, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeLessThanOrEqualTo(Integer value) {
            addCriterion("price_type <=", value, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeIn(List<Integer> values) {
            addCriterion("price_type in", values, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeNotIn(List<Integer> values) {
            addCriterion("price_type not in", values, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeBetween(Integer value1, Integer value2) {
            addCriterion("price_type between", value1, value2, "priceType");
            return (Criteria) this;
        }

        public Criteria andPriceTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("price_type not between", value1, value2, "priceType");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseIsNull() {
            addCriterion("shipping_expense is null");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseIsNotNull() {
            addCriterion("shipping_expense is not null");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseEqualTo(BigDecimal value) {
            addCriterion("shipping_expense =", value, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseNotEqualTo(BigDecimal value) {
            addCriterion("shipping_expense <>", value, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseGreaterThan(BigDecimal value) {
            addCriterion("shipping_expense >", value, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("shipping_expense >=", value, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseLessThan(BigDecimal value) {
            addCriterion("shipping_expense <", value, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseLessThanOrEqualTo(BigDecimal value) {
            addCriterion("shipping_expense <=", value, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseIn(List<BigDecimal> values) {
            addCriterion("shipping_expense in", values, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseNotIn(List<BigDecimal> values) {
            addCriterion("shipping_expense not in", values, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("shipping_expense between", value1, value2, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andShippingExpenseNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("shipping_expense not between", value1, value2, "shippingExpense");
            return (Criteria) this;
        }

        public Criteria andSpecOneIsNull() {
            addCriterion("spec_one is null");
            return (Criteria) this;
        }

        public Criteria andSpecOneIsNotNull() {
            addCriterion("spec_one is not null");
            return (Criteria) this;
        }

        public Criteria andSpecOneEqualTo(String value) {
            addCriterion("spec_one =", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneNotEqualTo(String value) {
            addCriterion("spec_one <>", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneGreaterThan(String value) {
            addCriterion("spec_one >", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneGreaterThanOrEqualTo(String value) {
            addCriterion("spec_one >=", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneLessThan(String value) {
            addCriterion("spec_one <", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneLessThanOrEqualTo(String value) {
            addCriterion("spec_one <=", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneLike(String value) {
            addCriterion("spec_one like", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneNotLike(String value) {
            addCriterion("spec_one not like", value, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneIn(List<String> values) {
            addCriterion("spec_one in", values, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneNotIn(List<String> values) {
            addCriterion("spec_one not in", values, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneBetween(String value1, String value2) {
            addCriterion("spec_one between", value1, value2, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecOneNotBetween(String value1, String value2) {
            addCriterion("spec_one not between", value1, value2, "specOne");
            return (Criteria) this;
        }

        public Criteria andSpecTwoIsNull() {
            addCriterion("spec_two is null");
            return (Criteria) this;
        }

        public Criteria andSpecTwoIsNotNull() {
            addCriterion("spec_two is not null");
            return (Criteria) this;
        }

        public Criteria andSpecTwoEqualTo(String value) {
            addCriterion("spec_two =", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoNotEqualTo(String value) {
            addCriterion("spec_two <>", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoGreaterThan(String value) {
            addCriterion("spec_two >", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoGreaterThanOrEqualTo(String value) {
            addCriterion("spec_two >=", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoLessThan(String value) {
            addCriterion("spec_two <", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoLessThanOrEqualTo(String value) {
            addCriterion("spec_two <=", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoLike(String value) {
            addCriterion("spec_two like", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoNotLike(String value) {
            addCriterion("spec_two not like", value, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoIn(List<String> values) {
            addCriterion("spec_two in", values, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoNotIn(List<String> values) {
            addCriterion("spec_two not in", values, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoBetween(String value1, String value2) {
            addCriterion("spec_two between", value1, value2, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecTwoNotBetween(String value1, String value2) {
            addCriterion("spec_two not between", value1, value2, "specTwo");
            return (Criteria) this;
        }

        public Criteria andSpecThreeIsNull() {
            addCriterion("spec_three is null");
            return (Criteria) this;
        }

        public Criteria andSpecThreeIsNotNull() {
            addCriterion("spec_three is not null");
            return (Criteria) this;
        }

        public Criteria andSpecThreeEqualTo(String value) {
            addCriterion("spec_three =", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeNotEqualTo(String value) {
            addCriterion("spec_three <>", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeGreaterThan(String value) {
            addCriterion("spec_three >", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeGreaterThanOrEqualTo(String value) {
            addCriterion("spec_three >=", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeLessThan(String value) {
            addCriterion("spec_three <", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeLessThanOrEqualTo(String value) {
            addCriterion("spec_three <=", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeLike(String value) {
            addCriterion("spec_three like", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeNotLike(String value) {
            addCriterion("spec_three not like", value, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeIn(List<String> values) {
            addCriterion("spec_three in", values, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeNotIn(List<String> values) {
            addCriterion("spec_three not in", values, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeBetween(String value1, String value2) {
            addCriterion("spec_three between", value1, value2, "specThree");
            return (Criteria) this;
        }

        public Criteria andSpecThreeNotBetween(String value1, String value2) {
            addCriterion("spec_three not between", value1, value2, "specThree");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(BigDecimal value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(BigDecimal value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(BigDecimal value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(BigDecimal value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<BigDecimal> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<BigDecimal> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andScoreIsNull() {
            addCriterion("score is null");
            return (Criteria) this;
        }

        public Criteria andScoreIsNotNull() {
            addCriterion("score is not null");
            return (Criteria) this;
        }

        public Criteria andScoreEqualTo(Integer value) {
            addCriterion("score =", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreNotEqualTo(Integer value) {
            addCriterion("score <>", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreGreaterThan(Integer value) {
            addCriterion("score >", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreGreaterThanOrEqualTo(Integer value) {
            addCriterion("score >=", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreLessThan(Integer value) {
            addCriterion("score <", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreLessThanOrEqualTo(Integer value) {
            addCriterion("score <=", value, "score");
            return (Criteria) this;
        }

        public Criteria andScoreIn(List<Integer> values) {
            addCriterion("score in", values, "score");
            return (Criteria) this;
        }

        public Criteria andScoreNotIn(List<Integer> values) {
            addCriterion("score not in", values, "score");
            return (Criteria) this;
        }

        public Criteria andScoreBetween(Integer value1, Integer value2) {
            addCriterion("score between", value1, value2, "score");
            return (Criteria) this;
        }

        public Criteria andScoreNotBetween(Integer value1, Integer value2) {
            addCriterion("score not between", value1, value2, "score");
            return (Criteria) this;
        }

        public Criteria andStockIsNull() {
            addCriterion("stock is null");
            return (Criteria) this;
        }

        public Criteria andStockIsNotNull() {
            addCriterion("stock is not null");
            return (Criteria) this;
        }

        public Criteria andStockEqualTo(Integer value) {
            addCriterion("stock =", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotEqualTo(Integer value) {
            addCriterion("stock <>", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThan(Integer value) {
            addCriterion("stock >", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThanOrEqualTo(Integer value) {
            addCriterion("stock >=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThan(Integer value) {
            addCriterion("stock <", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThanOrEqualTo(Integer value) {
            addCriterion("stock <=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockIn(List<Integer> values) {
            addCriterion("stock in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotIn(List<Integer> values) {
            addCriterion("stock not in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockBetween(Integer value1, Integer value2) {
            addCriterion("stock between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotBetween(Integer value1, Integer value2) {
            addCriterion("stock not between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andMarkPriceIsNull() {
            addCriterion("mark_price is null");
            return (Criteria) this;
        }

        public Criteria andMarkPriceIsNotNull() {
            addCriterion("mark_price is not null");
            return (Criteria) this;
        }

        public Criteria andMarkPriceEqualTo(BigDecimal value) {
            addCriterion("mark_price =", value, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceNotEqualTo(BigDecimal value) {
            addCriterion("mark_price <>", value, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceGreaterThan(BigDecimal value) {
            addCriterion("mark_price >", value, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("mark_price >=", value, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceLessThan(BigDecimal value) {
            addCriterion("mark_price <", value, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("mark_price <=", value, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceIn(List<BigDecimal> values) {
            addCriterion("mark_price in", values, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceNotIn(List<BigDecimal> values) {
            addCriterion("mark_price not in", values, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("mark_price between", value1, value2, "markPrice");
            return (Criteria) this;
        }

        public Criteria andMarkPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("mark_price not between", value1, value2, "markPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceIsNull() {
            addCriterion("display_price is null");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceIsNotNull() {
            addCriterion("display_price is not null");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceEqualTo(Integer value) {
            addCriterion("display_price =", value, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceNotEqualTo(Integer value) {
            addCriterion("display_price <>", value, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceGreaterThan(Integer value) {
            addCriterion("display_price >", value, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceGreaterThanOrEqualTo(Integer value) {
            addCriterion("display_price >=", value, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceLessThan(Integer value) {
            addCriterion("display_price <", value, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceLessThanOrEqualTo(Integer value) {
            addCriterion("display_price <=", value, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceIn(List<Integer> values) {
            addCriterion("display_price in", values, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceNotIn(List<Integer> values) {
            addCriterion("display_price not in", values, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceBetween(Integer value1, Integer value2) {
            addCriterion("display_price between", value1, value2, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andDisplayPriceNotBetween(Integer value1, Integer value2) {
            addCriterion("display_price not between", value1, value2, "displayPrice");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNull() {
            addCriterion("gmt_create is null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNotNull() {
            addCriterion("gmt_create is not null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateEqualTo(Date value) {
            addCriterion("gmt_create =", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotEqualTo(Date value) {
            addCriterion("gmt_create <>", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThan(Date value) {
            addCriterion("gmt_create >", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThanOrEqualTo(Date value) {
            addCriterion("gmt_create >=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThan(Date value) {
            addCriterion("gmt_create <", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThanOrEqualTo(Date value) {
            addCriterion("gmt_create <=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIn(List<Date> values) {
            addCriterion("gmt_create in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotIn(List<Date> values) {
            addCriterion("gmt_create not in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateBetween(Date value1, Date value2) {
            addCriterion("gmt_create between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotBetween(Date value1, Date value2) {
            addCriterion("gmt_create not between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNull() {
            addCriterion("gmt_modified is null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNotNull() {
            addCriterion("gmt_modified is not null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedEqualTo(Date value) {
            addCriterion("gmt_modified =", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotEqualTo(Date value) {
            addCriterion("gmt_modified <>", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThan(Date value) {
            addCriterion("gmt_modified >", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThanOrEqualTo(Date value) {
            addCriterion("gmt_modified >=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThan(Date value) {
            addCriterion("gmt_modified <", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThanOrEqualTo(Date value) {
            addCriterion("gmt_modified <=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIn(List<Date> values) {
            addCriterion("gmt_modified in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotIn(List<Date> values) {
            addCriterion("gmt_modified not in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedBetween(Date value1, Date value2) {
            addCriterion("gmt_modified between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotBetween(Date value1, Date value2) {
            addCriterion("gmt_modified not between", value1, value2, "gmtModified");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}